Multicasting is a technique for point-to-multipoint communication over an Internet Protocol (IP) infrastructure. Multicasting leverages network infrastructure to require that a source only send a single packet out to the network, even if it needs to be delivered to multiple destinations. The leveraging is accomplished by having network nodes replicate the packet (only as needed) for delivery to multiple receivers.
A multicast group address (e.g., an IP multicast) is used by sources and receivers to send and receive content. Sources use the multicast group address as the destination IP address in their data packets. Receivers use the multicast group address to “subscribe” to the multicast traffic associated with the multicast group address. In other words, these receivers use the multicast group address to communicate to the network the desire to receive traffic addressed to that multicast group.
The Internet Group Management Protocol (IGMP) is an example of a protocol that is used to manage the membership of IP multicast groups. Typically, IP hosts send out IGMP queries which are broadcast to other network hosts via multicast routers. Network devices (e.g., Layer 2 switches) can “listen in” on conversations between hosts and routers, a process known in the art as IGMP snooping. When a device hears a multicast group “join” message from a host, the device notes the interface (e.g., port) upon which it heard the message and adds the interface to the group. Similarly, when a device hears a multicast group “leave” message or a response timer expires, the switch will remove that host's switch interface from the group. These “join” and/or “leave” messages are commonly referred to as “IGMP reports.” To that end, an IGMP snooping table maintains in hardware (e.g., a cache) the list of hosts and/or interfaces that are members of a multicast group based on IGMP reports.
When there is a topology change in a network that uses multicasting, the IGMP snooping table is cleared and IGMP queries are sent out, so that devices in the network can relearn the IGMP snooping membership. If there are data packets in the network during a topology change, these packets will experience a cache miss in hardware because of the clearing of the IGMP snooping table. All of the packets that experience a cache miss are sent to the device CPU for forwarding in software, which is sometimes referred to as “slow-path” forwarding because forwarding in software is significantly slower than forwarding packets in hardware.
More problematic, however, is the case where there are thousands of data packets in the network during a topology change. In this case, there are thousands of data packets in the CPU queue, consuming CPU resources which would otherwise be spent re-programming the hardware cache with new IGMP snooping table entries. In other words, as the number of multicast packets in the network increases, it increases the convergence time of the multicast traffic in the network (i.e., the time it takes to re-program the hardware cache to restore an acceptable rate of cache misses in the multicast traffic). Additionally, the scenarios described above assume a single virtual local area network (VLAN). If a large number (e.g., thousands) of VLANs exist in the network, each IGMP query would be sent out on each of the VLANs, causing all of the hosts on each VLAN to respond with their respective IGMP reports indicating their IGMP membership. Thus, the CPU is burdened with even more slow-path forwarding, exacerbating the multicast convergence problem even further.